// Package models 定义数据模型结构体
package models

import (
	"time"
)

// User 用户模型结构体
type User struct {
	// ID 用户唯一标识符
	ID uint64 `json:"id" gorm:"primaryKey;autoIncrement"`
	// Username 用户名
	Username string `json:"username" gorm:"uniqueIndex"`
	// Email 邮箱地址
	Email string `json:"email" gorm:"uniqueIndex"`
	// Password 密码哈希值
	Password string `json:"-" gorm:"column:password_hash"`
	// CreatedAt 创建时间
	CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
	// UpdatedAt 更新时间
	UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
	// DeletedAt 软删除时间戳
	DeletedAt *time.Time `json:"-" gorm:"index"`
	// TaskGroups 用户关联的任务分组列表
	TaskGroups []TaskGroup `json:"-" gorm:"foreignKey:UserID"`
	// Tasks 用户关联的任务列表
	Tasks []Task `json:"-" gorm:"foreignKey:UserID"`
}

// TableName 指定User模型对应的数据库表名
// 返回值: string - 表名
func (User) TableName() string {
	return "users"
}
